iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
DevOps

連DevSecOps都不知道怎麼發音怎麼開始學習?系列 第 6

Day.6 世界線審判庭:Pull Request Flow 與守門人

  • 分享至 

  • xImage
  •  

昨天我們在 Day.5 建立了「世界線守則」──任何程式碼只要沒有通過測試、lint、格式化,就不能通過 CI 的世界線檢查
但如果開發者可以隨時直接改 master(main)分支,那這些檢查就沒有意義了

因此,今天我們要引入一個新的制度:世界線審判庭。
這個制度就是 Pull Request Flow + Branch Protection

為什麼要 PR Flow?

如果你直接在 master(main)改程式碼 → 那是 直接更動世界線
這樣一來,沒人能保證世界還是穩定的,CI 也沒機會擋下來

所以我們要建立一條規則:
「任何世界線改動,必須透過審判庭審核(PR)」

實作步驟

1.建立分支

git checkout -b feature/mayuri-happy

在這條分支上,我們可以隨便改:

# tests/test_worldline.py
mayuri_alive = True

2.推送到 GitHub

git push LinkStart feature/mayuri-happy

3.建立Pull Request (PR)
到 GitHub → 點 Compare & Pull Request

填入 PR 標題(例如「讓真由理繼續活著」)


提交 PR

CI 開始審查世界線
PR 一送出,GitHub Actions 會自動跑 CI
如果測試失敗(mayuri_alive=False),就會顯示紅燈 → 無法 merge
確認沒問題就能點 Merge pull request寫好commit message和描述就能確認merge了

Branch Protection 設定守門人

守門人就是管理世界秩序的法律,禁止直接破壞主要世界
在 GitHub Repo → Settings → Branches → Add rule

保護主世界,在Branch name pattern輸入master
我們把這幾個常用的勾起來
1.Require a pull request before merging
並設定至少 1 Approve
2.Require status checks to pass before merging
然後Require branches to be up to date before merging也勾起來,讓專案保持最新
Status checks選擇build

這樣一來,任何人想要修改世界線 → 都必須先被 CI + 審核人通過

結論

  • feature branch = 平行世界的試驗場
  • Pull Request = 把世界線提交給審判庭
  • CI 守門人 = 先檢查這條世界線會不會崩壞
  • Branch Protection = 法律,禁止直接污染主要世界
    最後,只有安全穩定的世界線,才能「收束」回到 master(main)

上一篇
Day.5 世界線清理者: 使用Lint檢查程式碼及程式碼格式化
下一篇
Day.7 守門人升級:Python 多版本驗證(本地 tox × GitHub Actions Matrix)
系列文
連DevSecOps都不知道怎麼發音怎麼開始學習?22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言